布尔量
一个布尔量,bool,可以具有两个值 true 或 false 之一。布尔量用于表示逻辑运算的结果。
例如,
void f(int a, int b)
{
bool b1 = a == b; // =是赋值,==是相等判断
// ...
}
如果 a 和 b 具有相同的值,b1 将变成 true;否则 b1 将变成 false。
bool 最常见的使用是作为检查某些条件是否成立的函数(谓词)的结果类型。例如,
bool is_open(File*);
bool greater(int a, int b) { return a > b; }
按照定义,true 具有值 1,而 false 具有值 0。与此相对应,整数可以隐式地转换到 bool 值:非零的整数转换为 true,而 0 转换为 false。例如,
bool b = 7; // bool(7)是true,所以b变成true
int i = true; // int(true)是1,所以i变成1
在算术和逻辑表达式里,bool 都将被转为 int,在这种转换之后得到的值上进行各种算术和逻辑运算。如果结果又被转回 bool,那么 0 将转为 false,所有非零值都转为 true。
void g()
{
bool a = true;
bool b = true;
bool x = a + b; // a + b是2,所以x变成true
bool y = a | b; // a | b是1,所以y变成true
}
指针也可以隐式地转换到 bool(C.6.2.5节),非零指针转为 true,具有零值的指针转为 false。
🔚